css: Pass the parent context to _gtk_css_lookup_resolve()
authorBenjamin Otte <otte@redhat.com>
Thu, 29 Dec 2011 12:38:45 +0000 (13:38 +0100)
committerBenjamin Otte <otte@redhat.com>
Mon, 9 Jan 2012 17:37:50 +0000 (18:37 +0100)
This way, we can resolve inherit properties.

gtk/gtkcsslookup.c
gtk/gtkcsslookupprivate.h
gtk/gtkstylecontext.c

index 5badd7b403befede6c2a815643066a5c73c3d010..c5fd1488263c272d3a6d17e698cc62a302755b05 100644 (file)
@@ -94,6 +94,8 @@ _gtk_css_lookup_set (GtkCssLookup *lookup,
 /**
  * _gtk_css_lookup_resolve:
  * @lookup: the lookup
+ * @parent: the parent properties to look up inherited values from or %NULL
+ *     if none
  *
  * Resolves the current lookup into a styleproperties object. This is done
  * by converting from the "winning declaration" to the "computed value".
@@ -104,12 +106,14 @@ _gtk_css_lookup_set (GtkCssLookup *lookup,
  * Returns: a new #GtkStyleProperties
  **/
 GtkStyleProperties *
-_gtk_css_lookup_resolve (GtkCssLookup *lookup)
+_gtk_css_lookup_resolve (GtkCssLookup    *lookup,
+                         GtkStyleContext *parent)
 {
   GtkStyleProperties *props;
   guint i, n;
 
   g_return_val_if_fail (lookup != NULL, NULL);
+  g_return_val_if_fail (parent == NULL || GTK_IS_STYLE_CONTEXT (parent), NULL);
 
   n = _gtk_style_property_get_count ();
   props = gtk_style_properties_new ();
index b1d6d5e4822c34362de2647cf7f3c94bc8f65505..19001d8cee1c5803aea789c9346a8306cbca58f8 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <glib-object.h>
 #include "gtk/gtkbitmaskprivate.h"
+#include "gtk/gtkstylecontext.h"
 #include "gtk/gtkstyleproperties.h"
 
 
@@ -38,7 +39,8 @@ gboolean                _gtk_css_lookup_is_missing              (const GtkCssLoo
 void                    _gtk_css_lookup_set                     (GtkCssLookup       *lookup,
                                                                  guint               id,
                                                                  const GValue       *value);
-GtkStyleProperties *    _gtk_css_lookup_resolve                 (GtkCssLookup       *lookup);
+GtkStyleProperties *    _gtk_css_lookup_resolve                 (GtkCssLookup       *lookup,
+                                                                 GtkStyleContext    *context);
 
 
 G_END_DECLS
index 21205c3ee86d1bcdbcb2c317de3deca2a4897100..bbcdc2a5935ead372d2421d81e8ab571284b120d 100644 (file)
@@ -987,7 +987,7 @@ build_properties (GtkStyleContext *context,
         }
     }
 
-  style_data->store = _gtk_css_lookup_resolve (lookup);
+  style_data->store = _gtk_css_lookup_resolve (lookup, priv->parent);
   _gtk_style_properties_set_color_lookup_func (style_data->store,
                                                gtk_style_context_color_lookup_func,
                                                context);